F查询


  • F() 的作用

    • 用于比较同一张表中,两个不同字段的值
    • 直接对字段进行运算

  • 导入 F() 方法

from django.db.models import F

  • 查询评论数大于收藏数的书籍

from app01.models import *
from django.db.models import F

Book.objects.filter(commnetnum__gt=F('keepnum'))

  • 查询评论数大于收藏数的书籍,并且要将收藏数量乘于二去查询

from app01.models import *
from django.db.models import F

Book.objects.filter(commnetnum__lt=F('keepnum')*2)

  • 将每一本书的价格提高30元

from app01.models import *
from django.db.models import F

Book.objects.all().update(price=F("price")+30)

  • 在每一个书名后面加上(第一版)

from app01.models import *
from django.db.models.functions import Concat
from django.db.models import Value
from django.db.models import F

Book.objects.all().update(title=Concat(F("title"), Value("("), Value("第一版"), Value(")")))